Add a shadow VRAM to track changes to the real VRAM. When the guest
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 16 Mar 2006 17:41:01 +0000 (18:41 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 16 Mar 2006 17:41:01 +0000 (18:41 +0100)
commit3fd07d7995f71150b7c6aed3ed9ee3fa4f3ef805
tree382157b6001657ece3f640b312e55a38f23230e0
parentabed9e6eea37652756a2055e8a637256a2e782bb
Add a shadow VRAM to track changes to the real VRAM.  When the guest
OS was given write access to the VRAM the device model tracked all
VRAM changes by updating the entire screen on every output loop,
causing significant overhead (a CPU bound loop in a guest slows down
by about 35%) and significant mouse latency (VNC uses the same data
path for mouse events and video updates).  With the shadow VRAM only
modified pages need to be updated and the comparison of the shadow
VRAM to the real VRAM only adds ~4% overhead while eliminating the
mouse latencies.

Signed-off-by: Don Dugger <donald.d.dugger@intel.com>
tools/ioemu/hw/vga.c
tools/ioemu/hw/vga_int.h
tools/ioemu/target-i386-dm/Makefile